package com.shujia.day11;

import java.io.File;
import java.io.FilenameFilter;

public class Demo11File {
    public static void main(String[] args) {
        File data = new File("data");
        /*
            TODO 源码：
                public String[] list(FilenameFilter filter) {
                    String names[] = list();
                    // 如果当前 names是空 或者过滤器没有定义 则返回空的
                    if ((names == null) || (filter == null)) {
                        return names;
                    }
                    // 创建新的ArrayList
                    List<String> v = new ArrayList<>();
                      // 遍历所有的data中的文件及目录的名称
                    for (int i = 0 ; i < names.length ; i++) {
                      // 调用自定义过滤器中的accept方法 将当前的 data对象传入第一个参数 names[i] 表示每一个文件名
                        if (filter.accept(this, names[i])) {
                        // 如果判断结果为true 将当前文件名添加到 ArrayList 中
                            v.add(names[i]);
                        }
                    }
                    // 将ArrayList转成数组
                    return v.toArray(new String[v.size()]);
                }
         */

        String[] list = data.list(
                new FilenameFilter() {
                    // accept 表示接收一个元素的数据 类型为 File
                    @Override
                    public boolean accept(File dir, String name) {
                        return name.endsWith(".jpg");
                    }
                }
        );

        for (String s : list) {
            System.out.println(s);
        }

    }
}
